#!/usr/bin/env bash
#########################################################################
# File Name   : config_keystone.sh.j2
# Author      : seadog
# mail        : seadog0514@163.com
# Version     : 0.1
# Created Time: Mon 2024-09-30 09:26:47(+0800)
#########################################################################

#
#
# Usage:

{
  set -euo pipefail
}

VG_NAME='vg_volume01' # correspond to cinder.conf

# 创建 loop 设备和 lvm
# 本实验环境我们使用 lvm 作为 cinder-volume 后端存储。
# 一种方法是给虚拟机添加一块硬盘 sdb 并创建 pv 和 vg。
# 另一种方式是使用本地文件创建 loop 设备然后再创建 pv 和 vg。
# 第一种方式操作起来比较简单，这里介绍下第二种方式：

# root@network:~# pvcreate /dev/sdb1
# Physical volume "/dev/sdb1" successfully created
# root@network:~# vgcreate -s 32M vg_volume01 /dev/sdb1
# Volume group "vg_volume01" successfully created

if lsblk | grep -q {{ cinder_server_empty_disk }}; then
  pvcreate /dev/{{ cinder_server_empty_disk }}
  vgcreate -s 32M vg_volume01 /dev/{{ cinder_server_empty_disk }}
else
  # !!! not persistent after reboot
  free_device=$(losetup -f)
  fallocate -l 36G /var/lib/cinder_data.img
  losetup $free_device /var/lib/cinder_data.img
  pvcreate $free_device
  vgcreate ${VG_NAME} $free_device
fi

sleep 60
